[Manual] R语言wordcloud2包使用手册

这是一篇关于R语言词云的知识总结

Posted by Leung ZhengHua on 2017-08-19

本文总点击量

在阅读本文之前,你可能对以下扫盲贴有兴趣:

wordclou2官方参考文档
可能是目前最好的词云解决方案 wordcloud2
wordcloud2: R语言词云终极解决方案


Wordcloud2的使用非常简单,主要使用的函数只有两个:wordlcoud2letterCloud,它们生成的不是静态的png等格式的图片,在Rstudio的viewer窗口动态显示。

wordlcoud2

Example

1
2
3
4
5
6
library(wordcloud2)
wordcloud2(data = demoFreq) #demoFreq是数据框格式,第一列是词汇,第二列是词频
wordcloud2(demoFreq, color = "random-light", backgroundColor = "grey")
wordcloud2(demoFreq, minRotation = -pi/6, maxRotation = -pi/6, minSize = 10,rotateRatio = 1) #旋转词云
figPath = system.file("examples/t.png",package = "wordcloud2") #背景图片路径
wordcloud2(demoFreq, figPath = figPath, size = 1.5,color = "skyblue") #color是词汇统一的格式

letterCloud

这个函数使用报错,调用后没有任何显示信息,这里先挖个坑以后会来继续填。

Exmaple

1
2
letterCloud(demoFreq, word = "R", size = 2)
letterCloud(demoFreq, word = "WORDCLOUD2", wordSize = 1)

词云图片保存

用Rstudio画了词云,可以在Viewer窗口使用点击Export的方式得到图片,但是我现在需要用代码保存图片,wordcloud2包中并没有提供使用代码保存图片的函数。stack overflow有个比较简单的办法:

1
2
3
4
5
require(wordcloud2)
df <- head(demoFreq, 5) #只取最高频的5个词语作为测试
my_cloud <- wordcloud2(df)
my_path <- htmltools::html_print(my_cloud) # saves html in temp directory
print(my_path) # the location of the html file.

中文词云报错

如果词语是中文的,则wordcloud2运行报错,字符集编码的问题很棘手,一度想要放弃这个包了。

Sys.setlocale(category = “LC_ALL”,locale = “English_United States.1252”)

如果使用上面的命令暂时更改Rstudio的系统语言,则wordcloud2自带的中文demo可以运行,但从其他地方导入的UTF-8文本依然报错,并且R的系统语言中原来的中文也变为了乱码。设置文本编辑为UTF-8输入格式,设置locale = "chinese",如果手动输入中文字符,有时候可以有时候不可以(除非locale设置为鬼佬的编码格式),自带的中文数据集demoFreqC也乱码报错。这个包太不健壮了,我都怀疑作者用的R版本是全英的,不需要处理中文文本。然后我去找源代码哪里错了,发现可能是htmlwidgets包的问题,好吧不能怪wordcloud。

1
2
3
library(wordcloud2)
mydata=data.frame(x=c("我喜欢你","man"),freq=c(10,9))
wordcloud2(mydata)